﻿//=============================================================================
//【 Common 】
//-----------------------------------------------------------------------------
///**
//  @file       Common.h
//  @brief      Common
//  @author     Riki
//*/
//=============================================================================

#pragma once

//-------------------------------------------------------------------------
//
//-------------------------------------------------------------------------

//-------------------------------------------------------------------------
//
//-------------------------------------------------------------------------
namespace LNote
{
namespace Core
{
namespace Graphics
{

//=============================================================================
// ■ Gizmo クラス
//-----------------------------------------------------------------------------
///**
//  @brief
//*/
//=============================================================================
class Gizmo
{
public:

    Gizmo();

    ~Gizmo();

public:

	//---------------------------------------------------------------------
	///**
	//  @brief      初期化
	//*/
	//---------------------------------------------------------------------
    LNRESULT initialize( IGraphicsDevice* device_ );

	//---------------------------------------------------------------------
	///**
	//  @brief      ギズモを描画する
	//
	//  @param[in]  wvp_ : 変換行列(ワールド*ビュー*プロジェクション)
	//
	//  @note
	//              アクティブなレンダリングターゲットに描画する。
	//              同時に、マウス座標の判定用のカラーバッファにも書き込む。
	//              描画には内部のシェーダを使う。
	//*/
	//---------------------------------------------------------------------
    LNRESULT draw( const LMatrix& wvp_ );

private:

    IGraphicsDevice*    mGraphicsDevice;
    IRenderer*          mRenderer;
    IShader*            mShader;
    ITexture*           mPointColorTarget;
};


//-------------------------------------------------------------------------
//
//-------------------------------------------------------------------------

} // namespace Graphics
} // namespace Core
} // namespace LNote

//=============================================================================
//
//=============================================================================